package com.xinqi.modules.chat.chat.official.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xinqi.common.mybatis.data.entity.BaseEntity;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 新奇助手消息
 *
 * @author huangweiye
 */
@Data
@TableName("ca_chat_assistant_content")
public class ChatAssistantContentEntity extends BaseEntity {

    /**
     * 消息ID
     */
    @TableField(value = "msg_uid")
    private String msgUid;
    /**
     * 消息类型1（0, "发布",1, "催交",2, "打回")
     */
    @TableField(value = "type")
    private Integer type;

    /**
     * 消息类型2（1, "互动课件"，2, "资料"，3, "作业"，4, "测评"，5, "讨论"，6, "互动视频"，8, "公告"，10, "考勤"，11, "随机提问"，12, "点名提问"）
     */
    @TableField(value = "message_type")
    private Integer messageType;

    /**
     * 课程内容ID
     */
    @TableField(value = "content_id")
    private Long contentId;

    /**
     * 作业轮数
     */
    @TableField(value = "times")
    private Integer times;

    /**
     * 发送时间
     */
    @TableField(value = "message_time")
    private Long messageTime;

    /**
     * 消息内容
     */
    @TableField(value = "message_context")
    private String messageContext;

    /**
     * 已读，0否，1是
     */
    @TableField(value = "is_read")
    private Integer isRead;

    /**
     * 查看时间
     */
    @TableField(value = "read_time")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime readTime;

    /**
     * 接收者
     */
    @TableField(value = "recipient")
    private Long recipient;

    /**
     * 进行状态(0, "未开始"，1, "进行中"，2, "已结束")
     */
    @TableField(value = "progress_state")
    private Integer progressState;

    /**
     * 提交状态:(3, "已提交",4, "未提交",5, "允许提交",6, "禁止提交",7, "未答题",8, "已答题",9, "已参与",10, "未参与",11, "已确认",12, "未确认",13, "已签到",14, "未签到",15, "已学习",16, "未学习"）
     */
    @TableField(value = "submitted_state")
    private Integer submittedState;

    @TableField(value = "is_update")
    private Integer isUpdate;

    @TableField(value = "send_flag")
    private Integer sendFlag;


}
